/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hojadetrabajo5dos;

/**
 *
 * @param <E> es es parametro que es generico luego definimos que deseamos que sea
 * @author RAUL
 */
    public class Node<E>
{
        /**
         * se refiere al dato guardado en el nodo
         */
        protected E data; // value stored in this element
        /**
         * este refiere al siguiente nodo
         */
        protected Node<E> nextElement; // ref to next

    /**
     * 
     * @param v es un valor que hacer referencia a la lista
     * @param next es un elemento construido como el siguiente elemento a la cabeza 
     */
    public Node(E v, Node<E> next)
    // pre: v is a value, next is a reference to remainder of list
    // post: an element is constructed as the new head of list
    {
        data = v;
        nextElement = next;
    }
    /**
     * 
     * @param v es el valor de la cola de la lista 
     */
    public Node(E v)
    // post: constructs a new tail of a list with value v
    {
        this(v,null);
    }
    /**
     * 
     * @return retorna el siguiente valor guardado en la lista
     */
    public Node<E> next()
    // post: returns reference to next value in list
    {
        return nextElement;
    }
    /**
     * 
     * @param next coloca la referencia al siguiente valor en la lista 
     */
    public void setNext(Node<E> next)
    // post: sets reference to new next value
    {
        nextElement = next;
    }
    /**
     * 
     * @return regresa el valor relacionado con el elemento
     */
    public E value()
    // post: returns value associated with this element
    {
        return data;
    }
    /**
     * 
     * @param value coloca el valor en la cola 
     */
    public void setValue(E value)
    // post: sets value associated with this element
    {
    data = value;
    }
}

